package com.jtbd.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;

import java.util.Date;

/**
 * 客户表
 *
 * @TableName customers
 */
@TableName(value = "customers")
@Data
public class Customers {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    @Schema(description = "客户id")
    private Long id;

    /**
     * 客户名称
     */
    @Schema(description = "客户名称")
    @NotBlank(message = "客户名称不能为空")
    private String customerName;

    /**
     * 联系方式类型 0-电话 1-微信 2-QQ 3-email 4-其他
     */
    @Schema(description = "联系方式类型 0-电话 1-微信 2-QQ 3-email 4-其他")
    private Integer contactType;

    /**
     * 联系方式电话
     */
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号码格式不正确")
    @Schema(description = "联系方式电话")
    private String contactPhone;

    /**
     * 联系方式邮箱
     */
    @Pattern(regexp = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$", message = "邮箱格式不正确")
    @Schema(description = "联系方式邮箱")
    private String contactEmail;

    /**
     * 联系方式qq
     */
    @Pattern(regexp = "^[1-9]\\d{4,12}$", message = "QQ号码格式不正确")
    @Schema(description = "联系方式qq")
    private String contactQq;

    /**
     * 联系方式微信
     */
    @Pattern(regexp = "^[a-zA-Z0-9_-]{5,32}$", message = "微信格式不正确")
    @Schema(description = "联系方式微信")
    private String contactWechat;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private Date updateTime;

    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private Long createId;

    /**
     * 更新人
     */
    @Schema(description = "更新人")
    private Long updateId;

    /**
     * 客户所属校区id
     */
    @NotNull(message = "校区id不能为空")
    @Schema(description = "客户所属校区id")
    private Long campusId;

    /**
     * 客户状态 0:新增 1：已分配 2：待跟进 3：跟进中 4：已成交 5：未成交  6：无效
     */
    @Schema(description = "客户状态 0:新增 1：已分配 2：待跟进 3：跟进中 4：已成交 5：未成交  6：无效")
    private Integer customerStatus;

    /**
     * 是否删除
     */
    @Schema(description = "是否删除")
    private Integer isDelete;
}